set nocompatible    " be iMproved, required
filetype off        " required

" call plug#begin('~/some/path/here')
" Specify a directory for plugins
" - For Neovim: stdpath('data') . '/plugged'
" - Avoid using standard Vim directory names like 'plugin'
call plug#begin('~/.vim/bundle')    " required

" Make sure you use single quotes

" The following are examples of different formats supported.
" Keep Plug commands between plug#begin/end.
" plugin on GitHub repo
" Plug 'tpope/vim-fugitive'
" plugin from http://vim-scripts.org/vim/scripts.html
" Plug 'L9'
" Git plugin not hosted on GitHub
" Plug 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own plugin)
" Plug 'file:///home/gmarik/path/to/plugin'
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
" Plug 'rstacruz/sparkup', {
" 'rtp': 'vim/'}
" Install L9 and avoid a Naming conflict if you've already installed a
" different version somewhere else.
" Plug 'ascenator/L9', {
" 'name': 'newL9'}
"
" All of your Plugins must be added before the following line

"Plug 'vim-airline/vim-airline'

" Plug 'preservim/nerdtree'
Plug 'https://gitee.com/ithewei/nerdtree'
let NERDTreeMinimalUI=1
let NERDTreeShowHidden=1
let NERDTreeIgnore=['\.o$','\.lo$','\.obj$','\.pyc$','tags','cscope*']
let NERDTreeWinSize=50
let NERDTreeWinPos='left'
" Open NERDTree if no files
autocmd VimEnter * if !argc() | NERDTree | endif

" Plug 'kien/ctrlp.vim'
Plug 'https://gitee.com/ithewei/ctrlp.vim'

" Plug 'dyng/ctrlsf.vim'
Plug 'https://gitee.com/ithewei/ctrlsf.vim'
let g:ctrlsf_position = 'bottom'
let g:ctrlsf_auto_focus = {
    \ "at": "done",
    \ "duration_less_than": 3000
    \ }
let g:ctrlsf_auto_close = {
    \ "normal" : 0,
    \ "compact": 0
    \ }
nmap <C-f> <Plug>CtrlSFCwordPath

" Plug 'majutsushi/tagbar'
Plug 'https://gitee.com/ithewei/tagbar'
let g:tagbar_width=30
autocmd BufReadPost *.h,*.c,*.hpp,*.cc,*.cpp,*.cxx,*.py,*.go call tagbar#autoopen()

if has("cscope")
    set cst " cscopetag
    set csto=0
    set nocsverb
    if filereadable("cscope.out")
        cs add cscope.out
    elseif $CSCOPE_DB!=""
        cs add $CSCOPE_DB
    endif
    set csverb
    nmap <Leader>fa :cs find a <C-R><C-W><CR>
    nmap <Leader>fc :cs find c <C-R><C-W><CR>
    nmap <Leader>fd :cs find d <C-R><C-W><CR>
    nmap <Leader>fe :cs find e <C-R><C-W><CR>
    nmap <Leader>ff :cs find f <C-R><C-W><CR>
    nmap <Leader>fg :cs find g <C-R><C-W><CR>
    nmap <Leader>fi :cs find i <C-R><C-W><CR>
    nmap <Leader>fs :cs find s <C-R><C-W><CR>
    nmap <Leader>ft :cs find t <C-R><C-W><CR>
endif

" Plug 'Valloric/YouCompleteMe'
Plug 'https://gitee.com/ithewei/YCM'
let g:ycm_server_python_interpreter='/usr/bin/python'
let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'
let g:ycm_confirm_extra_conf=0
let g:ycm_collect_identifiers_from_tags_file=1
let g:ycm_complete_in_comments=1
let g:ycm_complete_in_strings=1
let g:ycm_error_symbol='x'
let g:ycm_warning_symbol='!'
set completeopt=menu
let g:ycm_add_preview_to_completeopt=0
let g:ycm_key_invoke_completion='<C-d>'
let g:ycm_key_list_stop_completion = ['<Enter>']
let g:ycm_min_num_identifier_candidate_chars=3
let g:ycm_semantic_triggers={'c,cpp,python,java,go,erlang,perl,cs,lua,javascript' : ['re!\w{3}']}
nmap gt :YcmCompleter GoTo<CR>
" Plug 'rdnetto/YCM-Generator'
Plug 'https://gitee.com/ithewei/YCM-Generator'

" Plug 'Shougo/echodoc.vim'
Plug 'https://gitee.com/ithewei/echodoc.vim'
set noshowmode
let g:echodoc_enable_at_startup=1
let g:echodoc#type='echo'

" Plug 'jiangmiao/auto-pairs'
Plug 'https://gitee.com/ithewei/auto-pairs'

" Plug 'tpope/vim-commentary'
Plug 'https://gitee.com/ithewei/vim-commentary'
autocmd FileType c,cpp,go,java,javascript,typescript set commentstring=//\ %s

" Plug 'tpope/vim-surround'
Plug 'https://gitee.com/ithewei/vim-surround'

" Plug 'tpope/vim-fugitive'
Plug 'https://gitee.com/ithewei/vim-fugitive'
set statusline+=\ %{fugitive#statusline()}

" Plug 'airblade/vim-gitgutter'
Plug 'https://gitee.com/ithewei/vim-gitgutter'
set updatetime=100

" Plug 'fatih/vim-go'
Plug 'https://gitee.com/ithewei/vim-go'

call plug#end()             " required
filetype plugin indent on   " required

" Put your non-Plug stuff after this line

map <C-w><C-e> <Esc>:NERDTreeToggle<CR>
map <C-w><C-t> <Esc>:TagbarToggle<CR>
map <C-w><C-f> <Esc>:CtrlSFToggle<CR>
